package cn.edu.lsu.integratedsurvey.tool;

import org.mindrot.jbcrypt.BCrypt;
import org.springframework.stereotype.Component;

/**
 * BCrypt加密工具类
 *
 * @author Jasmine-drs
 * @date 2024/5/2 12:47
 */
@Component
public class BCryptUtil {

	/**
	 * 加密明文密码，自动内嵌salt
	 *
	 * @param plainText 明文密码
	 * @return 加密后的密码字符串
	 */
	public String hashPassword(String plainText) {
		return BCrypt.hashpw(plainText, BCrypt.gensalt());
	}

	/**
	 * 验证明文密码是否与存储的哈希密码匹配
	 *
	 * @param plainText      用户输入的明文密码
	 * @param hashedPassword 数据库中存储的哈希密码
	 * @return 如果匹配返回true，否则false
	 */
	public boolean checkPassword(String plainText, String hashedPassword) {
		return BCrypt.checkpw(plainText, hashedPassword);
	}
}

